<!-- HTML header for doxygen 1.8.5-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>MyoKit 0.4.0: Release Notes And Known Issues</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="customdoxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<div id="projectnumber">MyoKit &ndash; 0.4.0</div>
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img src="logo-black.png"/></td>
   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
</td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('release-notes.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">Release Notes And Known Issues </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><h1><a class="anchor" id="known-issues"></a>
Known Issues and Limitations</h1>
<p>The following limitations will be resolved in future updates of the SDK:</p>
<ul>
<li>The coordinate frame for orientation data is currently not specified.</li>
<li>The coordinate frame for accelerometer data and gyroscope data is currently not specified.</li>
<li>Myo Armbands can only be connected to a single app.</li>
<li>iOS devices sometimes have issues discovering services, causing a Myo connection to fail. This can be temporarily avoided by restarting the iOS device.</li>
</ul>
<p>The following are iOS known issues and limitations.</p>
<ul>
<li>On 64-bit iOS 7.0.x devices, bluetooth notification bandwidth is limited to 33.33 Hz, which may affect orientation streaming and pose recognition. This iOS bug is fixed in iOS 7.1.</li>
<li><p class="startli">If you do not enable background mode, you may see the following warning: </p>
<pre class="fragment">CoreBluetooth[API MISUSE] &lt;CBCentralManager: 0x145715b0&gt; has no restore identifier but the delegate implements the centralManager:willRestoreState: method. Restoring will not be supported
</pre><p class="startli">This warning is harmless and can be ignored.</p>
</li>
</ul>
<h1><a class="anchor" id="release-history"></a>
Release History</h1>
<p><b>Version 0.4.0</b></p>
<p>Breaking Changes:</p>
<ul>
<li>Removed dependence on GLKit in order to better support Swift. GLKVector3 is replaced with TLMVector3, and GLKQuaternion is replaced with TLMQuaternion.</li>
</ul>
<p><b>Beta Release 3</b></p>
<p>Requirements:</p>
<ul>
<li>Myo firmware version 1.1.0 or greater.</li>
</ul>
<p>Improvements:</p>
<ul>
<li>Added <code>lockingPolicy</code> property to <a class="el" href="interface_t_l_m_hub.html">TLMHub</a>.</li>
<li>Added <code>- (void)unlockWithType:(TLMUnlockType)type</code> and <code>- (void)lock</code> methods to <a class="el" href="interface_t_l_m_myo.html">TLMMyo</a>.</li>
<li>Added <code><a class="el" href="interface_t_l_m_unlock_event.html">TLMUnlockEvent</a></code> and <code><a class="el" href="interface_t_l_m_lock_event.html">TLMLockEvent</a></code>.</li>
<li>Added <code>- (void)indicateUserAction</code> method on <a class="el" href="interface_t_l_m_myo.html">TLMMyo</a>.</li>
<li>Added <code>TLMPoseTypeDoubleTap</code>.</li>
</ul>
<p>Breaking Changes:</p>
<ul>
<li>Removed Thumb to Pinky pose.</li>
</ul>
<p><b>Beta Release 2</b></p>
<p>Requirements:</p>
<ul>
<li>Myo firmware version 1.0.0 or greater.</li>
</ul>
<p>Improvements:</p>
<ul>
<li>Added <code>pose</code> property to <code><a class="el" href="interface_t_l_m_myo.html">TLMMyo</a></code>.</li>
<li>Added <code>orientation</code> property to <code><a class="el" href="interface_t_l_m_myo.html">TLMMyo</a></code>.</li>
<li>Added <code>arm</code> and <code>xDirection</code> properties to <code><a class="el" href="interface_t_l_m_myo.html">TLMMyo</a></code>.</li>
<li>Added <code>TLMArmUnknown</code> to <code>TLMArm</code> enum.</li>
<li>Added <code>TLMArmXDirectionUnknown</code> to <code>TLMArmXDirection</code> enum.</li>
<li>Myo armbands no longer lose their arm sync state when disconnecting.</li>
<li>Connecting to a synced Myo armband now triggers an arm synced event.</li>
<li>Disconnecting from a synced Myo armband now triggers an arm unsynced event.</li>
<li>The logo LED now pulses when the Myo armband is not synced, and becomes solid once synced.</li>
</ul>
<p>Breaking Changes:</p>
<ul>
<li>Removed <code><a class="el" href="interface_t_l_m_hub.html">TLMHub</a></code>'s <code>attachToAny</code> method.</li>
<li>Changed <code><a class="el" href="interface_t_l_m_myo.html">TLMMyo</a></code>'s <code>TLMArmRecognizedEvent</code> to <code><a class="el" href="interface_t_l_m_arm_sync_event.html">TLMArmSyncEvent</a></code>. Related keys and notifications have been updated as well.</li>
<li>Changed <code><a class="el" href="interface_t_l_m_myo.html">TLMMyo</a></code>'s <code>TLMArmLostEvent</code> to <code><a class="el" href="interface_t_l_m_arm_unsync_event.html">TLMArmUnsyncEvent</a></code>. Related keys and notifications have been updated as well.</li>
</ul>
<p><b>Beta Release 1</b></p>
<p>Improvements:</p>
<ul>
<li>Added background support for Myo events.</li>
<li>Added new attaching and detaching methods. Attaching to a <code><a class="el" href="interface_t_l_m_myo.html">TLMMyo</a></code> means the <code><a class="el" href="interface_t_l_m_hub.html">TLMHub</a></code> will always try to maintain the connection to the Myo, even when the Myo disconnects.</li>
<li>Added ability to attach to a Myo by its identifier.</li>
<li>Supports trainingless pose classification.</li>
</ul>
<p>Requirements:</p>
<ul>
<li>Myo firmware version 0.8.11 or greater.</li>
</ul>
<p>Breaking Changes:</p>
<ul>
<li>Dropped support for iOS 6.</li>
<li>A single Myo Armband can no longer connect to multiple apps.</li>
<li>Changed <code><a class="el" href="interface_t_l_m_myo.html">TLMMyo</a></code>'s property identifier from an NSString to an NSUUID. The NSString form can still be accessed like so: <pre class="fragment">NSString *uuidString = myo.identifier.UUIDString;
</pre></li>
<li>Changed <code><a class="el" href="interface_t_l_m_hub.html">TLMHub</a></code>'s <code>pairWithAdjacent</code> and <code>pairWithAny</code> to <code>attachToAdjacent</code> and <code>attachToAny</code>. You no longer need to stop <code>attachToAdjacent</code>, since it stops once a Myo is attached.</li>
<li>Removed training related methods. Myo no longer needs to be trained.</li>
</ul>
<p><b>Alpha Release 7</b></p>
<p>Improvements:</p>
<ul>
<li>The <code>TLMPoseTypeRest</code> pose has replaced the <code>TLMPoseTypeNone</code> pose.</li>
<li>The <code>TLMPoseTypeThumbToPinky</code> pose has replaced the <code>TLMPoseTypeTwistIn</code> pose.</li>
<li>The <code>TLMPoseTypeUnknown</code> pose has been added.</li>
<li>An applicationIdentifier property has been added to <a class="el" href="interface_t_l_m_hub.html">TLMHub</a>.</li>
</ul>
<p><b>Alpha Release 6</b></p>
<p>Improvements:</p>
<ul>
<li>Proper pose classification for multiple Myo armbands.</li>
</ul>
<p><b>Alpha Release 5</b></p>
<p>Improvements:</p>
<ul>
<li>New pose recognition algorithm which provides more consistent recognition of poses.</li>
<li>Support for multiple Myo armbands concurrently.</li>
</ul>
<p>Requirements:</p>
<ul>
<li>Myo firmware version 0.7.x.</li>
</ul>
<p>Bug Fixes:</p>
<ul>
<li>Issue parsing different firmware versions.</li>
</ul>
<p><b>Alpha Release 4</b></p>
<p>Improvements:</p>
<ul>
<li>arm64 and x86_64 support.</li>
</ul>
<p>Breaking Changes:</p>
<ul>
<li>Removed notificationDispatchQueue. If you want to receive notifications on a thread other than the main thread, use the NSNotificationCenter addObserverForName:object:queue:usingBlock: method.</li>
<li>Renamed TLMAccelerometerEvent.accelerationVector to <a class="el" href="interface_t_l_m_accelerometer_event.html#a432258da57c8b280c7a942d3b9f8eb4a">TLMAccelerometerEvent.vector</a>, TLMGyroscopeEvent.rotationRateVector to <a class="el" href="interface_t_l_m_gyroscope_event.html#a35b35fbacb2444d8cde983b5c66003ac">TLMGyroscopeEvent.vector</a>.</li>
</ul>
<p>Bug Fixes:</p>
<ul>
<li>Issue where training data was no longer being persisted.</li>
<li>Issue with receiving pose notifications while training.</li>
<li>Issue filtering out non-Myo BLE devices.</li>
<li>Assertion failure on creation of <a class="el" href="interface_t_l_m_hub.html">TLMHub</a>.</li>
</ul>
<p><b>Alpha Release 3</b></p>
<p>Improvements:</p>
<ul>
<li>Added Twist In pose.</li>
<li>Removed vibrate upon connection.</li>
<li>Added pairWithAdjacent pairing method.</li>
<li>Added gyroscope events.</li>
<li>Added <a class="el" href="interface_t_l_m_hub.html">TLMHub</a> property to specify which dispatch queue to receive notifications on.</li>
</ul>
<p>Bug Fixes:</p>
<ul>
<li>An intermittent crash when a Myo disconnects during training.</li>
</ul>
<p><b>Alpha Release 2</b></p>
<p>Improvements:</p>
<ul>
<li>In the trainer, examples can now be skipped.</li>
<li>Several lower level optimizations involving Myo Bluetooth communication.</li>
</ul>
<p>Bug Fixes:</p>
<ul>
<li>A rare bug involving the storage of favourite devices was fixed.</li>
</ul>
<p><b>Alpha Release 1</b></p>
<ul>
<li>Initial release.</li>
</ul>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.5-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Copyright &copy; 2013 Thalmic Labs Inc. Confidential and not for redistribution. See LICENSE.txt.</li>
  </ul>
</div>
</body>
</html>
